Somewhere between hardware and software, is firmware. It was originally called that precisely because it straddled those two worlds.
Yet most firmware is no longer firm, it's more like tofu and exists in firm, semi-firm, and soft states. Current FSF policy that allows proprietary firmware is based on burned-on-chip, write-once firmware from a few decades ago. Most firmware today is field-upgradable and closer to software. This talk will discuss how the modern state of "firm"ware demands new free software policy, and start a discussion on what that policy could be.
Reviewer:
mskiptr
-
favoritefavoritefavoritefavoritefavorite -
September 19, 2023 (edited)
Subject:
We should go further
We need to acknowledge that software freedom is just a part of a bigger issue – control. Whether it's the device owner | software user that is in charge,
...
or is it the manufacturer | developer | vendor instead. Based on that, we can isolate the ideal case: the user has the ultimate say over anything in the product after obtaining it, all the knowledge about the design (hardware, firmware, software) is available and no legal or technical restrictions are placed on the user. In light of that, it's pretty easy to consistently judge 'the freedom' of a piece of hardware and its software. Redistributable proprietary firmware is better than non-redistributable one. Downgradable one is better than non-downgradable one. Vendor-signed firmware is worse than user-modifiable one. Having PCB schematics is better than not having them. Likewise with hardware documentation or even Verilog sources, microscope die shots, and so on. And finally, if the proprietary firmware is isolated, cannot look at your RAM, etc. it's a significantly lesser issue than one that can invisibly steal the CPU from your OS (x86 SMM aka ring -2). RYF unfortunately promotes a black-and-white worldview. Yet not even an idealistic one. The secondary embedded processor exception is a pragmatic choice that made some sense in the past but right now it encourages pointless blob juggling and can even incentivize harming user freedom – see https://mntre.com/reform-irc-logs/2018-12-23.log.html. I believe RYF should be *more* radical. It should not have any exceptions and frankly it should also demand full user control at the hardware level! Schematics available and such. Basically https://www.oshwa.org/definition. But since then it would be clear the certification is detached from reality, we really should also acknowledge the nuances and start grading hardware on some kind of freedom spectrum.